package metier.jdbc.note;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import javax.swing.JOptionPane;

import metier.Matiere;
import configuration.MessageAppli;

public class MatiereJDBC {
	
	/**
	 * Regourne la liste des categories
	 * @param Connection connexion à la base
	 * @return liste Matiere
	 */
	public static ArrayList<Matiere> getListeMatiere(Connection c) {
		ArrayList<Matiere> lMatiere = new ArrayList<Matiere>();
		// préparer la requete sql 
		try {
			PreparedStatement ps=c.prepareStatement("SELECT * FROM matiere");

			// Res commence par 1 et pas 0.
			ResultSet res = ps.executeQuery();
			while(res.next()){
				lMatiere.add(new Matiere(res.getInt("IDMATIERE"), 
						res.getString("LIBELLEMATIERE")));
			}
			ps.close();
		} catch (SQLException e) {
			e.printStackTrace();
			JOptionPane.showMessageDialog(null, MessageAppli.MSG_BDD_ERREUR_REQUETE,
					MessageAppli.MSG_BDD_TITRE_ERREUR, JOptionPane.ERROR_MESSAGE);
		}
		return lMatiere;
	}
	
	/**
	 * Regourne matiere par son id
	 * @param Connection connexion à la base
	 * @return  Matiere
	 */
	public static Matiere getMatiereById(Connection c,int id) {
		Matiere matiere = null;
		// préparer la requete sql 
		try {
			PreparedStatement ps=c.prepareStatement("SELECT * FROM matiere WHERE IDMATIERE="+id);

			// Res commence par 1 et pas 0.
			ResultSet res = ps.executeQuery();
			while(res.next()){
				matiere = new Matiere(res.getInt("IDMATIERE"), 
						res.getString("LIBELLEMATIERE"));
			}
			ps.close();
		} catch (SQLException e) {
			e.printStackTrace();
			JOptionPane.showMessageDialog(null, MessageAppli.MSG_BDD_ERREUR_REQUETE,
					MessageAppli.MSG_BDD_TITRE_ERREUR, JOptionPane.ERROR_MESSAGE);
		}
		return matiere;
	}

}
